package com.wudd.filter;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.lang3.StringUtils;
import org.springframework.cloud.netflix.zuul.filters.support.FilterConstants;

import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;

/**
 * 描述：网管过滤，可以将未登入的请求过滤掉
 * @author 吴冬冬
 * @date 2018年11月5日 下午2:47:20  
 * @version V1.0
 */
public class MyGatewayFilter extends ZuulFilter{
	
	/**
	 * 返回一个字符串代表过滤器的类型
	 * pre表示被路由之前
	 */
    @Override
    public String filterType() {
        return FilterConstants.PRE_TYPE;
    }

    /**
	* @Description: 过滤顺序
	* @author: 吴冬冬
	* @date: 2018年11月5日 下午2:39:46 
	* @see com.netflix.zuul.ZuulFilter#filterOrder()
	*/
    @Override
    public int filterOrder() {
        return 0;
    }
    
    
    @Override
    public boolean shouldFilter() {
        return true;
    }

	
	@Override
	public Object run() {
		RequestContext ctx = RequestContext.getCurrentContext();
        HttpServletRequest request = ctx.getRequest();
        String token = String.valueOf(request.getParameter("Token"));
		
		if(!StringUtils.equals("zz", token)){
			ctx.setSendZuulResponse(false);
			ctx.setResponseStatusCode(401);
			return null;
		}
		return null;
	}
	
	

}
